package com.gzcc.repository;

import com.gzcc.model.Product;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;

import javax.transaction.Transactional;
import java.util.List;

/**
 * 描述: 商品数据操作
 *
 * @Author: Mr.Zhong
 * @Date: 2018/6/13
 */
@Repository
@Transactional
public interface ProductRepository extends JpaRepository<Product, Integer> {

    /**
    * 描述: 查询商品
    * @param  itemId
    * @return   Product
    * @Author: Mr.Zhong
    * @Date: 2018/6/13
    */
    Product findByItemid(String itemId);

    /**
    * 描述: 查询热销商品
    * @param  ishot
    * @return   List<Product>
    * @Author: Mr.Zhong
    * @Date: 2018/6/13
    */
    List<Product> findByIshotOrderByIdDesc(int ishot);
    /**
     * 描述: 查询推销商品
     * @param  istui
     * @return   List<Product>
     * @Author: Mr.Zhong
     * @Date: 2018/6/13
     */
    List<Product> findByIstuiOrderByIdDesc(int istui);

    /**
     * 描述: 查询商品
     * @param  cateId
     * @return   List<Product>
     * @Author: Mr.Zhong
     * @Date: 2018/6/13
     */
    List<Product> findByCateidOrderById(int cateId);

    /**
    * 描述: 查询品牌商品
    * @param  brandId
    * @return  List<Product>
    * @Author: Mr.Zhong
    * @Date: 2018/6/13
    */
    List<Product> findByBrandidOrderById(int brandId);

    /**
    * 描述: 根据品牌名查询商品
    * @param
    * @return
    * @Author: Mr.Zhong
    * @Date: 2018/6/13
    */
    @Query(value = "select * from product u where u.name like %?1%", nativeQuery = true)
    List<Product> findAllByBrandNameLike(String name);

}
